package com.strategy;

public class Test {
	/**
	 * 1. 何时使用 一个系统有许多类，而区分它们的只是他们直接的行为时 
	 * 2. 方法 将这些算法封装成一个一个的类，任意的替换 
	 * 3. 优点 算法可以自由切换
	 * 避免使用多重条件判断（如果不用策略模式我们可能会使用多重条件语句，不利于维护） 扩展性良好，增加一个策略只需实现接口即可 
	 * 4. 缺点
	 * 策略类数量会增多，每个策略都是一个类，复用的可能性很小 所有的策略类都需要对外暴露
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		Context context;
		context = new Context(new CreateAStrategy());
		context.contextInterFace();
		
		context = new Context(new CreateAStrategy());
		context.contextInterFace();
	}
}
